#ifndef __NIL_MOMOK_CAMERA_H__
#define __NIL_MOMOK_CAMERA_H__

#include "film.h"
#include "point.h"
#include "vector.h"
#include "ray.h"

namespace rt {

class Scene;

class Camera
{
public:
    Camera();
    virtual ~Camera();

    virtual void render(const Scene &);

private:
    Point                    m_position;
    Vector                   m_direction;
    std::pair<double,double> m_view_angles;
    Film                     m_film;

    Vector                   m_x,m_y,m_z;

    void mRecomputeCameraBase();
};

} //end of namespace

#endif //__NIL_MOMOK_CAMERA_H__
